﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BLLTZS.Funcionalidad
{
    public class BLLHistorialContraseña: BLLGenerico
    {
        public BLLHistorialContraseña(TZSDataContext contexto) : base(contexto){}
        public BLLHistorialContraseña() : this(new TZSDataContext()) { }

        public void AgregarRegistro(TZS_Usuario usuario, string contraseña)
        {
            bool encontrada = false;

            foreach (TZS_HistorialContraseña item in Contexto.TZS_HistorialContraseñas.Where(h => h.TZS_Usuario.NombreUsuario.ToLower().Equals(usuario.NombreUsuario.ToLower())))
            {
                string desencriptada = Encriptador.Desencriptar(item.Contraseña);

                if (desencriptada.Equals(contraseña))
                {
                    encontrada = true;
                    break;
                }
            }

            if (!encontrada)
            {
                TZS_HistorialContraseña nuevoRegistro = new TZS_HistorialContraseña();
                nuevoRegistro.TZS_Usuario = usuario;
                nuevoRegistro.Contraseña = Encriptador.Encriptar(contraseña);
                Contexto.TZS_HistorialContraseñas.InsertOnSubmit(nuevoRegistro);
            }
        }

        public List<string> TraerHistoriales(int idUsuario)
        {
            List<string> historiales = new List<string>();

            foreach (TZS_HistorialContraseña item in Contexto.TZS_HistorialContraseñas.Where(h => h.IdUsuario == idUsuario).ToList())
                historiales.Add(Encriptador.Desencriptar(item.Contraseña));

            return historiales;
        }
    }
}
